package chapter8.section6;

/**
 * 程序 8-7 一个实现了 Compareable 接口，用于比较两个 Account 对象的 id 的大小进行排序的 Account 类
 * 程序利用了字符串的大小比较的 compareTo 方法作为账户 id 的大小比较算法
 */
public class Account implements Comparable<Account> {
    private final String id; // 用户唯一的ID
    private final String name;// 用户名称
    private final int balance;// 当前余额

    public Account(String id, String name, int balance) {
        super();
        this.id = id;
        this.name = name;
        this.balance = balance;
    }

    public Account(String id, String name) {
        super();
        this.id = id;
        this.name = name;
        this.balance = 0;
    }

    public String getId() {
        return id;
    }

    @Override
    public int compareTo(Account o) {
        // 利用字符串的 compareTo 方法作为账户 id 的大小比较算法，并作为返回结果。
        return this.id.compareTo(o.getId());
    }

    // 打印
    @Override
    public String toString() {
        return "Account[id:" + id + ",name:" + name + ",balance:" + balance + "]";
    }
}
